package cn.bonoon.kernel.annotations;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * <pre>
 * 到目前为止，这个注解用得很少，基本上没用过！
 * 
 * 第三版中，格式化显示功能比较强大，希望这个版本后格式化比较好用
 * <pre>
 * @author jackson
 *
 */
@Target(FIELD)
@Retention(RUNTIME)
public @interface FormatString {
	String value();
	/**
	 * <pre>
	 * 除了本身字段名，还可以追加其它的字段作为格式化的其它参数，具体字段的数量及类型，
	 * 应该与格式化表达式相对应；被追加的其它字段只能使用简单的类型，即通过字义的格式可以
	 * 直接找到相应的字段，而不是通过关联关系才能访问的字段；并且被追加的字段只能使用部分
	 * 注解来进行解析；这个注解比较少用到，所以这里只简单先处理直接引用的情况，以后如果有
	 * 需要，再添加通过其它注解进行解释的情况
	 * </pre>
	 * @return
	 */
	AppendProperty[] properties() default {};
	FormatValueType type() default FormatValueType.FORMAT;
}
